Software applications, such as virtual machines (VMs), may be executed by a group, or “cluster,” of host computing devices. Each VM creates an abstraction of physical computing resources, such as a processor and memory, of the host executing the VM and executes a “guest” operating system, which, in turn, executes one or more software applications. The abstracted resources may be functionally indistinguishable from the underlying physical resources to the guest operating system and software applications.
The amount of computing resources allocated to each VM on a host can be designated manually by an administrator of the cluster and/or automatically according to resource policies set by the administrator. In some clusters, an operator attempts to distribute the use of computing resources, also known as the computing “load,” across multiple hosts. For example, a fixed quantity of hosts may be configured to execute VMs that, in turn, execute a software application.